MCP 문서 관리

메뉴

문서 정보

최종 수정일:
2025-05-12 20:16

Filesystem MCP 서버

Filesystem MCP 서버

파일 시스템 작업을 위한 Model Context Protocol(MCP)을 구현한 Node.js 서버입니다.

특징

  • 파일 읽기/쓰기
  • 디렉토리 생성/목록/삭제
  • 파일/디렉토리 이동
  • 파일 검색
  • 파일 메타데이터 가져오기

참고: 이 서버는 args를 통해 지정된 디렉토리 내에서만 작업을 허용합니다.

API

리소스

  • file://system: 파일 시스템 작업 인터페이스

도구

read_file

파일의 전체 내용을 읽습니다 - 입력: path (string) - UTF-8 인코딩으로 파일 전체 내용을 읽습니다

read_multiple_files

여러 파일을 동시에 읽습니다 - 입력: paths (string[]) - 특정 파일 읽기 실패가 전체 작업을 중단시키지 않습니다

write_file

새 파일을 생성하거나 기존 파일을 덮어씁니다 (주의해서 사용) - 입력: - path (string): 파일 위치 - content (string): 파일 내용

edit_file

고급 패턴 매칭과 서식 지정을 사용하여 선택적 편집 수행 - 기능: - 줄 기반 및 여러 줄 내용 매칭 - 들여쓰기 보존과 함께 공백 정규화 - 올바른 위치 지정과 함께 여러 동시 편집 - 들여쓰기 스타일 감지 및 보존 - 컨텍스트가 포함된 Git 스타일 diff 출력 - 드라이 런 모드로 변경 사항 미리 보기 - 입력: - path (string): 편집할 파일 - edits (array): 편집 작업 목록 - oldText (string): 검색할 텍스트 (부분 문자열 가능) - newText (string): 대체할 텍스트 - dryRun (boolean): 적용하지 않고 변경 사항 미리 보기 (기본값: false) - 드라이 런의 경우 상세한 diff와 매치 정보를 반환하고, 그렇지 않으면 변경 사항을 적용합니다 - 권장 사항: 항상 먼저 dryRun을 사용하여 변경 사항을 적용하기 전에 미리 확인하세요

create_directory

새 디렉토리를 생성하거나 디렉토리가 있는지 확인합니다 - 입력: path (string) - 필요한 경우 상위 디렉토리도 생성합니다 - 디렉토리가 이미 존재하는 경우 조용히 성공합니다

list_directory

[FILE] 또는 [DIR] 접두사가 있는 디렉토리 내용을 나열합니다 - 입력: path (string)

move_file

파일 및 디렉토리 이동 또는 이름 변경 - 입력: - source (string) - destination (string) - 대상이 이미 존재하는 경우 실패합니다

search_files

파일/디렉토리를 재귀적으로 검색합니다 - 입력: - path (string): 시작 디렉토리 - pattern (string): 검색 패턴 - excludePatterns (string[]): 제외할 패턴. Glob 형식을 지원합니다. - 대소문자 구분 없는 매칭 - 일치하는 항목의 전체 경로를 반환합니다

get_file_info

파일/디렉토리의 상세 메타데이터 가져오기 - 입력: path (string) - 반환 정보: - 크기 - 생성 시간 - 수정 시간 - 접근 시간 - 타입 (파일/디렉토리) - 권한

list_allowed_directories

서버가 접근할 수 있는 모든 디렉토리 목록 조회 - 입력 필요 없음 - 반환 정보: - 이 서버가 읽기/쓰기 가능한 디렉토리들

Claude Desktop에서 사용 방법

claude_desktop_config.json에 다음을 추가하세요:

참고: 서버에 샌드박스 디렉토리를 제공하려면 /projects에 마운트하세요. ro 플래그를 추가하면 서버에서 해당 디렉토리를 읽기 전용으로 만듭니다.

Docker

참고: 모든 디렉토리는 기본적으로 /projects에 마운트해야 합니다.

{
  "mcpServers": {
    "filesystem": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "--mount",
        "type=bind,src=/Users/username/Desktop,dst=/projects/Desktop",
        "--mount",
        "type=bind,src=/path/to/other/allowed/dir,dst=/projects/other/allowed/dir,ro",
        "--mount",
        "type=bind,src=/path/to/file.txt,dst=/projects/path/to/file.txt",
        "mcp/filesystem",
        "/projects"
      ]
    }
  }
}

NPX

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/username/Desktop",
        "/path/to/other/allowed/dir"
      ]
    }
  }
}

VS Code에서 사용 방법

수동 설치의 경우, VS Code의 사용자 설정(JSON) 파일에 다음 JSON 블록을 추가하세요. Ctrl + Shift + P를 누르고 Preferences: Open Settings (JSON)을 입력하여 이 작업을 수행할 수 있습니다.

선택적으로 작업 공간에 .vscode/mcp.json 파일을 추가할 수 있습니다. 이렇게 하면 다른 사람과 구성을 공유할 수 있습니다.

.vscode/mcp.json 파일에서는 mcp 키가 필요하지 않습니다.

서버에 샌드박스 디렉토리를 제공하려면 /projects에 마운트하세요. ro 플래그를 추가하면 서버에서 해당 디렉토리를 읽기 전용으로 만듭니다.

Docker

참고: 모든 디렉토리는 기본적으로 /projects에 마운트해야 합니다.

{
  "mcp": {
    "servers": {
      "filesystem": {
        "command": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "--mount",
          "type=bind,src=${workspaceFolder},dst=/projects/workspace",
          "mcp/filesystem",
          "/projects"
        ]
      }
    }
  }
}

NPX

{
  "mcp": {
    "servers": {
      "filesystem": {
        "command": "npx",
        "args": [
          "-y",
          "@modelcontextprotocol/server-filesystem",
          "${workspaceFolder}"
        ]
      }
    }
  }
}

빌드

Docker 빌드:

docker build -t mcp/filesystem -f src/filesystem/Dockerfile .

라이선스

이 MCP 서버는 MIT 라이선스 하에 제공됩니다. 이는 MIT 라이선스의 조건에 따라 소프트웨어를 자유롭게 사용, 수정 및 배포할 수 있음을 의미합니다. 자세한 내용은 프로젝트 저장소의 LICENSE 파일을 참조하세요.

연결된 구성 요소

  • 현재 식별된 연결 구성 요소가 없습니다.